package 剑指Offer._5160;

/**
 * @author yzh
 * @version 1.0
 * @date 2021/11/20 12:10
 * 翻转单词顺序
 * 输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。为简单起见，标点符号和普通字母一样处理。
 * 例如输入字符串"I am a student. "，则输出"student. a am I"。
 * 算法：双指针
 */
public class _58I {

    public String reverseWords(String s) {
        s = s.trim();
        int end = s.length() - 1, start = end;
        StringBuilder ans = new StringBuilder();
        while (start >= 0) {
            while (start >= 0 && s.charAt(start) != ' ') --start;
            ans.append(s, start + 1, end + 1).append(" ");
            while (start >= 0 && s.charAt(start) == ' ') --start;
            end = start;
        }
        return ans.toString().trim();
    }

}
